#include<iostream>
#include <string>
#include <regex>


//正则表达式匹配
//bool std::regex_match(const std::string& src, std::smatch& matchs, std::regex& e)
//src: 原始字符串
//matchs：正则表达式，可以从原始字符串中匹配并提取符合某种规则的数据,提取的数据就放在matchs中
//        是一个类似于数组的容器
//e：正则表达式的匹配规则
//返回值：false-匹配失败 true-匹配成功

int main()
{
    std::string str = "/numbers/123";

    // \d 表示匹配数字  + 表示匹配一次或多次出现的数字
    //匹配以/numbers/起始，后面跟了一个或多个数字字符的字符串，并在匹配过程中提取这个数字字符串
    std::regex e("/numbers/(\\d+)");
    std::smatch matchs;

    bool ret = std::regex_match(str, matchs, e);
    if(ret == false)
        return -1;

    for(auto &s : matchs)
    {
        std::cout << s << std::endl;
    }

    return 0;
}